package day01;

import java.util.Objects;

//使用当前类测试常被子类重写的Object中定义的方法：
//toString与equals
//main在Demo中
public class Point {
    private int x;
    private int y;
    //选择构造器：按alt+ins选择生成构造器
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
    //构造方法：按alt+ins选择Getter和setter
    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }
//重写toString：按alt+ins选择toString
    @Override
    public String toString() {
        return "Point{" +
                "x=" + x +
                ", y=" + y +
                '}';
    }
//创建equals：按alt+ins选择equals和hasCode然后一直下一步
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Point point = (Point) o;
        return x == point.x && y == point.y;
    }

    @Override
    public int hashCode() {
        return Objects.hash(x, y);
    }
}
